#ifndef _PLUGIN_H
#define _PLUGIN_H

NPError NP_LOADDS New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved);
NPError NP_LOADDS Destroy(NPP instance, NPSavedData** save);
NPError NP_LOADDS SetWindow(NPP instance, NPWindow* window);
NPError NP_LOADDS NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* stype);
NPError NP_LOADDS DestroyStream(NPP instance, NPStream* stream, NPReason reason);
void    NP_LOADDS StreamAsFile(NPP instance, NPStream* stream, const char* fname);
int32_t NP_LOADDS WriteReady(NPP instance, NPStream* stream);
int32_t NP_LOADDS Write(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer);
void    NP_LOADDS Print(NPP instance, NPPrint* platformPrint);
int16_t NP_LOADDS HandleEvent(NPP instance, void* event);
void    NP_LOADDS URLNotify(NPP instance, const char* url, NPReason reason, void* notifyData);
NPError NP_LOADDS GetValue(NPP instance, NPPVariable variable, void *value);
NPError NP_LOADDS SetValue(NPP instance, NPNVariable variable, void *value);

#endif
